home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / dsp / dspgroup / macrosrc.arc / INIT.ASM < prev    next >
Encoding:
Assembly Source File  |  1983-11-17  |  1.3 KB  |  57 lines

  1.  
  2. *INIT MEMORY MACRO
  3. *USES: AR0, AR1, AC
  4. *
  5. *      INIT <ITEM-LIST>
  6. *      <ITEM-LIST>:=<ITEM>|<ITEM>,<ITEM-LIST>
  7. *      <ITEM>:=(<CONST>,VAR)
  8. *      VAR IS A SYMBOLIC MEMORY LOCATION TO INITIALIZED
  9. *      <CONST>:=VALUE|(VALUE,VALUE,VALUE, ... ,VALUE)
  10. *      VALUE IS AN ASSY TIME CONSTANT
  11.  
  12. INIT   $MACRO            A1,A2,A3,A4,A5,A6,A7,A8
  13.        CALL   INIT$      CALL INIT SUBR
  14.        REF    INIT$
  15.        $IF    A1.L#=0
  16.        $INIT3 :A1:
  17.        $ENDIF
  18.        $IF    A2.L#=0
  19.        $INIT3 :A2:
  20.        $ENDIF
  21.        $IF    A3.L#=0
  22.        $INIT3 :A3:
  23.        $ENDIF
  24.        $IF    A4.L#=0
  25.        $INIT3 :A4:
  26.        $ENDIF
  27.        $IF    A5.L#=0
  28.        $INIT3 :A5:
  29.        $ENDIF
  30.        $IF    A6.L#=0
  31.        $INIT3 :A6:
  32.        $ENDIF
  33.        $IF    A7.L#=0
  34.        $INIT3 :A7:
  35.        $ENDIF
  36.        $IF    A8.L#=0
  37.        $INIT2 :A8:
  38.        $ENDIF
  39.        DATA -1           END OF INIT LIST
  40.        $END
  41.  
  42. $INIT2 $MACRO            A,B
  43.        $INIT3            :A:  DO AN ITEM
  44.        $IF  B.L#=0
  45.        $INIT2            :B:  RECURSE
  46.        $ENDIF
  47.        $END
  48.  
  49. $INIT3 $MACRO            A,B
  50.        $IF  A.A&$POPL    VALUE LIST
  51.        DATA :A.V:        FOR :A.V: WORDS
  52.        $ELSE
  53.        DATA 1            FOR ONE WORD
  54.        $ENDIF
  55.        DATA :B:          TO :B:
  56.        DATA :A:          DATA LIST
  57.        $END